/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package spaceinvaders.util;

/**
 * Classe que serve para chamadas consecutivas do metodo update.
 * @author Danilo Augusto Silva
 */
public class Timer extends Thread {

    /**
     * Construtor timer, inicializa os objetos listener e millis.
     * @param listener objeto do tipo TimeListener (no caso, o sistema).
     * @param millis quantos tempo em milisegundos a thread irá esperar.
     */

    public Timer(TimerListener listener, long millis) {
        this.listener = listener;
        this.millis = millis;
    }

    /**
     * método que faz esperar millis millisegundos a cada chamada do método
     * update
     */

    @Override
    public void run() {
        while (true) {
            try {
                Thread.sleep(millis);
                listener.update();
            } catch (InterruptedException ex) {
            }
        }
    }
    private TimerListener listener;
    private long millis;
}
